home *** CD-ROM | disk | FTP | other *** search
/ IRIX Patches 1995 March / SGI IRIX Patches 1995 Mar.iso / 5.2_patches / patchSG0000226 / patchSG0000226.idb / usr / include / sys / stty_ld.h.z / stty_ld.h
C/C++ Source or Header  |  1995-03-10  |  2KB  |  63 lines

  1. /* streams tty interface
  2.  *    definitions for the streams 'line discipline'
  3.  *
  4.  * $Revision: 3.12 $
  5.  */
  6.  
  7. #ifndef __STTY_LD_H__
  8. #define __STTY_LD_H__
  9.  
  10. #include "sys/termio.h"
  11.  
  12. /* view an IOCTL message as a termio structure */
  13. #define STERMIO(bp) ((struct termio*)(bp)->b_cont->b_rptr)
  14.  
  15.  
  16. /* one of these is created for each stream
  17.  */
  18. struct stty_ld {
  19.     struct termio st_termio;    /* modes and such        */
  20. #define st_iflag st_termio.c_iflag    /* input modes            */
  21. #define st_oflag st_termio.c_oflag    /* output modes            */
  22. #define st_cflag st_termio.c_cflag    /* 'control' modes        */
  23. #define st_lflag st_termio.c_lflag    /* line discipline modes    */
  24. #define    st_line  st_termio.c_line    /* line discipline        */
  25. #define    st_cc     st_termio.c_cc        /* control chars        */
  26.  
  27.     u_char    st_rrunning;        /* input busy            */
  28.  
  29.     uint    st_state;        /* current state        */
  30.     int    st_tid;            /* input timer ID        */
  31.     uint    st_ocol;        /* current output 'column'    */
  32.     uint    st_ncol;        /* future current column    */
  33.     uint    st_xcol;        /* current 'interfering' column    */
  34.     uint    st_bcol;        /* 'base' of input line        */
  35.  
  36.     uint    st_llen;        /* text waiting in lines    */
  37.     uint    st_ahead;        /* waiting text non-canonical    */
  38.  
  39.     queue_t *st_rq;            /* our read queue        */
  40.     queue_t *st_wq;            /* our write queue        */
  41.     mblk_t    *st_imsg, *st_ibp;    /* input line            */
  42.     mblk_t    *st_lmsg, *st_lbp;    /* typed-ahead canonical lines    */
  43.     mblk_t    *st_emsg, *st_ebp;    /* current echos        */
  44. };
  45.  
  46. /* states */
  47. #define ST_LIT        0x0001        /* have seen literal character    */
  48. #define ST_ESC        0x0002        /* have seen backslash        */
  49. #define ST_TIMING    0x0008        /* timer is running        */
  50. #define ST_TIMED    0x0010        /* timer has already run    */
  51. #define ST_TABWAIT    0x0020        /* waiting to echo HT delete    */
  52. #define ST_BCOL_BAD    0x0040        /* base column # is wrong    */
  53. #define ST_BCOL_DELAY    0x0080        /* mark column # bad after this */
  54. #define ST_ISTTY    0x0100        /* told stream head about tty    */
  55. #define ST_INRAW    0x0200        /* input is very raw        */
  56. #define ST_INPASS    0x0400        /* pass input upstream fast    */
  57. #define ST_NOCANON    0x0800        /* don't do canonicalization    */
  58. #define ST_MAXBEL    0x1000        /* doing imaxbel                */
  59. #define ST_ECHOPRT    0x2000        /* doing echoprt                */
  60. #define ST_CLOSE_DRAIN    0x4000        /* draining output on close     */
  61.  
  62. #endif
  63.